import { commonProps } from "../../libs/config";

export type DateMore = {
	date: string;
	className: string;
};



export const calendarMonthProps = {
	...commonProps,
	// 日期类型选择，single-选择单个日期，multiple-可以选择多个日期，range-选择日期范围
	mode: {
		type: String,
	},
	// mode=range时，第一个日期底部的提示文字
	startText: {
		type: String,
	},
	// mode=range时，最后一个日期底部的提示文字
	endText: {
		type: String,
	},
	// 日期行高,单位px
	rowHeight: {
		type: Number
	},
	// 最小的可选日期
	minDate: {
		type: [String, Number],
	},
	// 最大可选日期
	maxDate: {
		type: [String, Number],
	},
	// 默认选中的日
	defaultDate: {
		type: [String, Number, Date, Array],
	},
	// mode=multiple时，最多可选多少个日期
	maxCount: {
		type: [String, Number],
	},
	// 是否为只读状态，只读状态下禁止选择日期
	readonly: {
		type: Boolean,
		default:null
	},
	// 日期区间最多可选天数，默认无限制，mode = range时有效
	maxRange: {
		type: [Number, String],
	},
	// 范围选择超过最多可选天数时的提示文案，mode = range时有效
	rangePrompt: {
		type: String,
	},
	// 范围选择超过最多可选天数时，是否展示提示文案，mode = range时有效
	showRangePrompt: {
		type: Boolean,
		default:null
	},
	// 是否允许日期范围的起止时间为同一天，mode = range时有效
	allowSameDay: {
		type: Boolean,
		default:null
	},
	// 是否默认从周日开始
	sundayStart: {
		type: Boolean,
		default:null
	},
	// 今天的日期，默认new Date
	nowDate: {
		type: [Date, String]
	},
	// 显示今天日期上的小圆点
	showNowDateDot: {
		type: Boolean,
		default:null
	},
	// 给指定日期添加自定义的class
	markDateMore: Array
}

export const calendarMonthEmits = {
	changeMonth: (d: Date) => true,
	monthSelected: (v: number[]) => true,
	confirm: (v: number[]) => true,
};


